package com.pearadmin.modules.sys.service;

import com.github.pagehelper.PageInfo;
import com.pearadmin.common.web.domain.request.PageDomain;
import com.pearadmin.modules.sys.domain.InvAnode;
import com.pearadmin.modules.sys.domain.vo.InvAnodeVO;

import java.util.List;

/**
 * 阳极库存Service接口
 *
 * @author Mr.Ling
 * @date 2021-11-26
 */
public interface IInvAnodeService {
    /**
     * 查询阳极库存
     *
     * @param id 阳极库存ID
     * @return 阳极库存
     */
    InvAnode selectInvAnodeById(String id);

    /**
     * 查询阳极库存
     *
     * @param anodeCode
     * @return 阳极库存
     */
    InvAnode selectInvAnodeByAnodeCode(String anodeCode);


    /**
     * 查询阳极库存
     *
     * @param ${classsName} 阳极库存
     * @param pageDomain
     * @return 阳极库存 分页集合
     */
    PageInfo<InvAnode> selectInvAnodePage(InvAnode invAnode, PageDomain pageDomain);

    /**
     * 查询阳极库存列表
     *
     * @param invAnode 阳极库存
     * @return 阳极库存集合
     */
    List<InvAnode> selectInvAnodeList(InvAnode invAnode);

    /**
     * 新增阳极库存
     *
     * @param invAnode 阳极库存
     * @return 结果
     */
    int insertInvAnode(InvAnode invAnode);

    /**
     * 修改阳极库存
     *
     * @param invAnode 阳极库存
     * @return 结果
     */
    int updateInvAnode(InvAnode invAnode);

    /**
     * 批量删除阳极库存
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteInvAnodeByIds(String[] ids);

    /**
     * 删除阳极库存信息
     *
     * @param id 阳极库存ID
     * @return 结果
     */
    int deleteInvAnodeById(String id);

    /**
     * 配送工单获取最新库存阳极的信息
     * @param anodeCode
     * @return
     */
    InvAnodeVO findAnodeCode(String anodeCode);

    List<InvAnode> getCastingDetailById(String castingId);

    boolean checkAnodeCodeIsValid(String anodeCode);

    //判断当前库存数量
    int selectCurrNum(String blockType);
}
